package com.qualiti.javaweb.mb;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.qualiti.javaweb.modelo.Autor;
import com.qualiti.javaweb.modelo.Categoria;
import com.qualiti.javaweb.modelo.Livro;

@ManagedBean
@SessionScoped
public class EdicaoLivroMB implements Serializable {
	
	private Livro livro;
	
	public EdicaoLivroMB() {
		livro = new Livro();
	}
	
	public Livro getLivro() {
		return livro;
	}

	public void setLivro(Livro livro) {
		this.livro = livro;
	}

	public List<Livro> getLivros() {
		return BancoDeDados.obterTodosLivros();
	}
	
	public void novo() {
		livro = new Livro();
	}
	
	public void alterar(Livro livroAlterar) {
		novo();
		livro.setCodigo(livroAlterar.getCodigo());
		livro.setNome(livroAlterar.getNome());
		livro.setAutor(livroAlterar.getAutor());
		livro.setCategoria(livroAlterar.getCategoria());
		livro.setEstoque(livroAlterar.getEstoque());
		livro.setPreco(livroAlterar.getPreco());
	}
	
	public void remove(Livro livroRemover) {
		BancoDeDados.removerLivro(livroRemover);
		if (livro.getCodigo() != null && livro.getCodigo().equals(livroRemover.getCodigo())) {
			livro.setCodigo(null);
		}
	}
	
	public void salvarLivro() {
		if (livro.getCodigo() == null) {
			BancoDeDados.adicionarLivro(livro);
		} else {
			BancoDeDados.atualizarLivro(livro);
		}
		novo();
	}
	
	public List<Categoria> getCategorias() {
		return BancoDeDados.obterTodasCategorias();
	}
	
	public List<Autor> getAutores() {
		return BancoDeDados.obterTodosAutores();
	}
}